const express = require('express');
const app = express();
const path = require('path');
const fs = require('fs');
const mysql = require('mysql');
app.listen(3000, () => { console.log('服务器已开启') });

//资源静态化
app.use(express.static(__dirname))

//渲染注册
app.get('/', (req, res) => {
    res.sendFile(path.join(__dirname, '2.注册.html'));
})
app.get('/index', (req, res) => {
    res.sendFile(path.join(__dirname, '2.index.html'));
})
//渲染登录
app.get('/2.login.html', (req, res) => {
    res.sendFile(path.join(__dirname, '2.login.html'));
})



//中间件
app.use(express.urlencoded({ extended: false }));
app.use(express.json());


//引入数据库
const myQuery = require('./2.query封装');


//响应前端
app.post('/register', async (req, res, next) => {
    //用户输入的数据
    console.log(req.body);
    let { username, password } = req.body;

    // 判断用户名和密码不能为空
    if (!username || !password) {
        next('用户名和密码不能为空');
        return;
    }

    //查询数据库内是否有用户输入的数据
    let sql = `SELECT * FROM aemo1 WHERE username= '${username}';`
    //数据库里的数据
    let [err, result] = await myQuery(sql);
    console.log(result);
    //判断错误信息,如果有错误停止以下操作
    if (err) {
        next(err)
        return;
    }
    //如果查询到说明已存在,停止下面的操作
    if (result.length > 0) {
        next('用户名已存在')
        return;
    }

    //如果没有查询到，说明可以注册，执行以下代码，添加到数据库
    let sql1 = `INSERT INTO aemo1 (username,password) VALUES ('${username}','${password}');`;
    let [err1, result1] = await myQuery(sql1);
    console.log(err1, result1);
    if (result1.insertId > 0) {
        res.send({ code: 200, msg: '注册成功' })
    } else {
        next('注册失败')
    }

    //同一错误处理
    app.use((err, req, res, next) => {
        res.send({ code: 400, msg: err })
    })

})
